package controleur;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import modele.CKModel;
import modele.Knowledge;
import modele.TreeLayout;
import vue.PanelCK;
import vue.PanelChoice;
import vue.VueEditeurCK;

public class ControleBtnK0 implements ActionListener {
	CKModel<String, String> _modele;
	VueEditeurCK _vue;
	

	public ControleBtnK0(CKModel<String, String> modele, VueEditeurCK vue) {
		_modele = modele;
		_vue = vue;
		
	}

	@Override
	public void actionPerformed(ActionEvent e) {
	
		if ( _vue.getPanelK0().getTextK0().isEmpty()){
			
			_vue.getPanelK0().setLblErrorK0("Veuillez remplir ce champ");
			
		} else {
			
			_vue.getPanelK0().setLblErrorK0("");
			// Création du knowledge KO
			Knowledge<String> K0 = new Knowledge<String>(0, _vue.getPanelK0().getTextK0());
			_modele.addKnowledge(K0);
			
			// Lien CO-KO
			_modele.addLink(_modele.getCSpace(), K0);
			
			TreeLayout tl = new TreeLayout(_modele);
			tl.buildTree();
			
			
			// Création du panel de visualisation
			PanelCK pnlCK = new PanelCK(_modele, _vue);
			_vue.setPanelCK(pnlCK);

			PanelChoice pnlC = new PanelChoice(_modele, _vue);
			_vue.setPanelC(pnlC);
			
			_vue.getEditorFrame().remove(_vue.getPanelK0());
			_vue.getEditorFrame().add(_vue.getPanelC(), BorderLayout.NORTH);
			_vue.getEditorFrame().add(_vue.getPanelCK(), BorderLayout.CENTER);
			
			_vue.getEditorFrame().paint(_vue.getEditorFrame().getGraphics());
			_vue.dessiner();
		}
		
	}

}
